.. _Build NeurEco Discrete Dynamic model with the command line interface:

Build NeurEco Discrete Dynamic model with the command line interface
=====================================================================

To build a NeurEco Regression model, run the following command in the terminal:

.. code-block:: shell

	neurecoRNN build path/to/build/configuration/file/build.conf

The skeleton of a configuration file required to build NeurEco Regression model, here build.conf, looks as follows. 
Its fields should be filled according to the problem at hand.

.. _Dynamic Build Conf:

.. code-block:: javascript
   :linenos:

    {
    "neurecoRNN_build":
        {
            "exc_filenames": [],
            "output_filenames": [],
            "validation_exc_filenames": [],
            "validation_output_filenames": [],
            "test_exc_filenames": [],
            "test_output_filenames": [],
            "write_model_to": "",
            "write_model_output_to_directory": "",
            "checkpoint_address": "",
            "resume": False,
            "settings": {
                "valid_percentage": 30,
            "min_hidden_state": 1,
            "max_hidden_state": 0,
            "steady_state_exc": [],
            "steady_state_out": [],
                "input_normalization": {
                    "shift_type": "mean",
                    "scale_type": "l2",
                    "normalize_per_feature": true},
                "output_normalization": {
                    "shift_type": "mean",
                    "scale_type": "l2",
                    "normalize_per_feature": true}}
        },
    }
    }


| The available building parameters in the configuration file are described in the following table. 

.. csv-table:: NeurEco Discrete Dynamic building parameters in .conf
   :file: csv_tables/ConfDiscreteDynamicNeurEcoBuildingParameters.csv
   :header-rows: 1
   :class: longtable
   :widths: 3, 3, 8
   :delim: ;
   :align: center
   
.. _Normalizing the data for Discrete Dynamic conf:

Data normalization for Discrete Dynamic
#########################################

Set **input normalization: normalize_per_feature** (or **output_normalization: normalize_per_feature**) to True if trying to fit the features of different natures (temperature and pressure for example) and want to give them equivalent importance.

Set **input_normalization: normalize_per_feature** (or **output_normalization: normalize_per_feature**) to False if trying to fit the features of the same nature (a set of temperatures for example) or a field.

If neither of provided normalization options suits the problem, normalize the data your own way prior to feeding them to NeurEco (and deactivate normalization by setting the **scale** and **shift** to **none**).

.. include:: ../CommonPartsDynamic/NormalizationDynamic.rst
